/**********************************************************************************************/
/* FBL_Value_Approximate_Imp.h                                             					  */
/*                                                                       					  */
/* Copyright Paradigma, 1993-2006															  */
/* All Rights Reserved                                                   					  */
/**********************************************************************************************/

#ifndef _FBL_Value_Approximate_Imp_h
	#define _FBL_Value_Approximate_Imp_h
#pragma once

#include <VShared/FBL/publ/Interfaces/FBL_I_ValueApproximate.h>

#include <VShared/FBL/publ/Headers/FBL_pre_header.h>


/**********************************************************************************************/
FBL_Begin_Namespace
extern bool IsTrueStr( const char* inString );
extern bool IsTrueStr( const UChar* inString );


/**********************************************************************************************/
// This class implements I_ValueApproximate interface
// 
class FBL_SHARED_EXP_CLASS Value_Approximate_Imp : 
	public I_ValueApproximate
{
	public://///////////////////////////////////////////////////////////////////////////////////

							Value_Approximate_Imp( ushort inPrecision, ushort inScale )
								:
							mPrecision( inPrecision ),
							mScale( inScale )
							{
							}

							Value_Approximate_Imp( const Value_Approximate_Imp& inValue )
								:
							mPrecision( inValue.get_Precision() ),
							mScale( inValue.get_Scale() )
							{
							}


	public://///////////////////////////////////////////////////////////////////////////////////

// I_ValueApproximate API:

virtual						~Value_Approximate_Imp( void )
								{}


virtual	ushort				get_Precision( void ) const
							{
								return mPrecision;
							}

virtual	void				put_Precision( ushort inPrecision )
							{
								mPrecision = inPrecision;
							}
	
virtual	ushort				get_Scale( void ) const
							{
								return mScale;
							}

virtual	void				put_Scale( ushort inScale )
							{
								mScale = inScale;
							}


	protected://////////////////////////////////////////////////////////////////////////////////

		ushort				mPrecision;
		ushort				mScale;
};


/**********************************************************************************************/
FBL_End_Namespace

#include <VShared/FBL/publ/Headers/FBL_post_header.h>

#endif // _FBL_Value_Approximate_Imp_h
